The invention to which this application relates is the synchronization of recorded broadcast content on a peer to peer system.
Peer to peer (P2P) systems are commonly used in computer networks to transfer files between clients by using the cumulative bandwidth of the participating clients. When a file is requested from the network by a client, it is received in small portions or chunks. Typically, as the bandwidth for uploading may only be 100 kb/s compared to a downloading bandwidth of say 4-5 Mb/s, the P2P system allows the uploading bandwidth to be aggregated to increase the download speed to a peer. A further advantage of P2P systems is that the transfer is more robust compared to the conventional method of transferring the file in one large download wherein the transfer may be aborted if the connection is lost during such transfer, thereby losing the portion downloaded so far. As the file is subdivided into small chunks in the P2P system, if the connection is aborted the portions of the file downloaded to date are not lost.
A number of P2P protocols are available, and BitTorrent is a commonly used one. In this protocol, a peer first creates a small file called a torrent which contains metadata about the files to be shared and about the tracker, the computer that coordinates the file distribution and tracks which peer has which portions. Peers that want to download the file first obtain a torrent file for it, and connect to the specified tracker, which tells them which other peers currently have the whole file or are downloading the same, so that pieces of the file can be obtained from the same.
Peers with the whole file are known as seeds, whereas the group of peers with portions of the file are known as a swarm. Peers can obtain file pieces from seeds or from other peers in the swarm, which improves the download speed as more chunks become shared in the swarm.
While BitTorrent works effectively with identical files, there is a significant problem in using P2P technology to share broadcast recordings, of the type that may be created by a broadcast data receiver (BDR).
This is because P2P protocols expect to work on perfect copies of the same file, as they chunk up the files at arbitrary points based on the number of bytes, such that the same chunks are created to allow receipt of the same chunk from multiple peers.
However, broadcast recordings generally do not produce identical copies because, for example, recordings on different BDRs may start and/or finish at different times due to variations in real time clocks on the BDRs.
In addition, packets can be lost mid-recording, for example due to uncorrected broadcast errors, poor reception, or from problems within the BDR delaying writing of content to the hard disk which can cause data loss. Even the loss of a single packet can cause problems for the P2P protocols as the chunk boundaries will be affected, thereby losing identity with the other chunks in the swarm.